#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

using namespace std;


class Solution {
public:
    int mySqrt(int x) {
        if (x < 1) return 0;
        long long left = 0, right = x;
        while (left < right)
        {
            long long mid = left + (right - left + 1) / 2;
            if (mid * mid <= x) left = mid;
            else right = mid - 1;
        }
        return left;
    }
};

class person
{
public:
	virtual void fun() { cout << "i am person" << endl; }
protected:
	int _a;
};

class student : public person
{
public:
	virtual void fun() { cout << "i am student" << endl; }
private:
	int _id;
};

void test(person* p)
{
	p->fun();
}

int main()
{
	person p;
	student s;

	test(&p);
	test(&s);

	return 0;
}
